# Test module

from django.test import TestCase
from django.test.client import Client
 
from models import *

class TestModo_de_contacto(TestCase):

	def test_new(self):
		m = Modo_de_contacto(nombre="Modo1")
		m.save()

class TestProductor(TestCase):

	def test_es_persona(self):
		s = Sexo.objects.get(nombre="Masculino")
		p = Contacto(apellido="LIS", nombre="DIEGO", sexo=s, fecha_de_nacimiento="1983-07-23")
		p.save()

	def test_requeridos(self):
		p = Contacto(apellido="LIS2")
		p.save()

	def test_observaciones(self):
		p = Contacto(apellido="LIS3", observaciones = "Un texto largo que pueda exceder una gran cantidad de caracteres")
		p.save()

	def test_save(self):
		p = Contacto(apellido="LIS4", observaciones = "Un texto largo que pueda exceder una gran cantidad de caracteres")
		p.save()
		p = Contacto.objects.get(apellido="LIS4")


class TestContacto(TestCase):
	def setUp(self):
		self.modo = Modo_de_contacto(nombre="Modo2")
		self.modo.save()
		self.productor = Contacto(apellido="Lis")
		self.productor.save()
		self.productor2 = Contacto(apellido="Magalevsky")
		self.productor2.save()


	def test_es_contacto(self):
		p = Contacto(apellido="Cremer", email="diegolis@gmail.com", web="www.sistemaslis.com.ar",fecha_de_contacto="2000-01-01",modo_de_contacto=self.modo)
		p.save()

	def test_referencia(self):
		p = self.productor
		p.referencia = self.productor2
		p.save()
		self.assert_(p in self.productor2.referidos.all())
	
	def test_relaciones(self):
		p = self.productor
		p.relaciones.create (relacion ="Padre", nombre="Simon")
		p.relaciones.create (relacion ="Madre", nombre="Adriana")
		
	def test_domicilios(self):
		calle = Calle(nombre="Concejal Cabiche")
		calle.save()
		p = self.productor
		p.domicilios.create (calle=calle, nro="246")

	def test_telefonos(self):
		p = self.productor
		p.telefonos.create (tipo="Celular",  nro="153672486")
		p.telefonos.create (tipo="Oficina",  nro="5232663")
	
	

	def test_new(self):
		calle = Calle(nombre="Concejal Cabiche")
		calle.save()
		d = Domicilio(contacto = self.productor, calle=calle, nro=246, piso="5", departamento="A", otros_datos="cerca del velodromo")
		d.save()

	def test_ubicacion(self):
		barrio= Barrio(nombre="Ayacucho")
		barrio.save()
		p = Provincia.objects.get(id = 2)
		localidad= Localidad(nombre="Cordoba", provincia = p)
		localidad.save()
		d = Domicilio(contacto = self.productor, barrio = barrio, localidad = localidad, codigo_postal = 5001)
	 	
class TestVerDatos(TestCase):
	def setUp(self):
		self.contacto = Contacto(apellido="Lis")
		self.contacto.save()
		self.user = User.objects.create_user("diego", "d@d.com", "d")
		self.client = Client()
	
	def test_requiere_auth(self):
		response = self.client.get('/empresa/contactos/datos_contacto/%s/' % self.contacto.id)
		self.assertEqual(response.status_code, 302)

	def test_ver(self):
		self.client.login(username="diego", password="d")
		response = self.client.get('/empresa/contactos/datos_contacto/%s/' % self.contacto.id)
		self.assertEqual(response.status_code, 200)
		self.assertEqual(response.context['contacto'], self.contacto)

